﻿using Microsoft.AspNetCore.Mvc.Filters;

/*************************************
* 类名：MultiTenantAttribute
* 作者：realyrare
* 邮箱：mhg215@yeah.net
* 时间：2021/9/9 14:06:40
*┌───────────────────────────────────┐　    
*│　   版权所有：神牛软件　　　　	     │
*└───────────────────────────────────┘
**************************************/

namespace ShenNius.BaseControllers.Attributes
{
    public class MultiTenantAttribute : ActionFilterAttribute, IActionFilter
    {
        /// <summary>
        /// 全局注册过滤器 ，自动为添加 更新方法赋值。也可自行手动打上特性标签
        /// </summary>
        /// <param name="context">上下文</param>
        //public override void OnActionExecuting(ActionExecutingContext context)
        //{
        //    var actionDescriptor = context.ActionDescriptor as ControllerActionDescriptor;
        //    ICacheHelper cache = context.HttpContext.RequestServices.GetRequiredService(typeof(ICacheHelper)) as ICacheHelper;
        //    var tenantId = cache.Get<int>("currentTenant");           
        //    foreach (var parameter in actionDescriptor.Parameters)
        //    {
        //        var parameterName = parameter.Name;//获取Action方法中参数的名字
        //        var parameterType = parameter.ParameterType;//获取Action方法中参数的类型
        //                                                                   //自动添加租户id
        //        if (typeof(IGlobalTenant).IsAssignableFrom(parameterType))
        //        {
        //            var model = context.ActionArguments[parameterName] as IGlobalTenant;
        //            if (tenantId != 0)
        //            {
        //                model.TenantId = tenantId;
        //            }
        //        }
        //    }
        //}
    }
}